package com.mmy.controller.constparameter;

import java.text.ParseException;
import java.util.HashMap;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.mmy.domain.constparameter.TConstParameter;
import com.mmy.domain.sys.TSysUser;
import com.mmy.service.impl.constparameter.ConstParameterServiceImpl;

/**
 * 类的介绍：参数管理
 *
 * @author hanxl
 * @date 2020-12.23
 * @version 1.0
 */
@Controller
public class ConstParameterController {
	@Autowired
	ConstParameterServiceImpl constParameterServiceImpl;

	/**
	 * 函数功能说明：后台招投标管理 显示招标基本信息
	 *
	 * @param 参数说明 tConstParameter
	 * @return 返回值说明 jsp页面
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.12.23
	 */
	// 显示招标基本信息首页
	@RequestMapping(value = "/constparameterindex")
	public String constParameterIndex(HttpServletRequest request, String pageNumber, String pageSize, Model model) {
		String strText = request.getParameter("strText");
		// 获得所有参数信息
		List<TConstParameter> lstConstParameter = constParameterServiceImpl.findByText(pageNumber, pageSize, strText);
		model.addAttribute("lstConstParameter", lstConstParameter);
		HashMap<String, Integer> mapPage = constParameterServiceImpl.mapConstParameter(pageNumber, pageSize, strText);
		model.addAttribute("iPageNo", mapPage.get("iPageNo"));
		model.addAttribute("iTotalCount", mapPage.get("iTotalCount"));
		model.addAttribute("iMaxPage", mapPage.get("iMaxPage"));
		model.addAttribute("iPageSize", mapPage.get("iPageSize"));
		model.addAttribute("strText", strText);
		return "webbackground/constparametermanagement/ConstParameterIndex";
	}

	/**
	 * 函数功能说明： 进入新建参数信息页面
	 *
	 * @param 参数说明 tConstParameter
	 * @return 返回值说明 jsp页面
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.12.23
	 */
	@RequestMapping(value = "/tocreateparameter")
	public String toCreateParameter(Model model) {
		return "webbackground/constparametermanagement/CreateConstParameter";
	}

	/**
	 * 函数功能说明： 新建参数信息
	 *
	 * @param 参数说明 tConstParameter
	 * @return 返回值说明 jsp页面
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.12.23
	 */
	@RequestMapping(value = "/savecreateparameter")
	public String saveCreateParameter(TConstParameter tConstParameter, HttpSession session) throws ParseException {
		TSysUser sessionSysUser = (TSysUser) session.getAttribute("tSysUser");
		if (constParameterServiceImpl.createParameter(tConstParameter, sessionSysUser) == true) {
			return "redirect:constparameterindex";
		} else {
			return "Test";
		}
	}

	/**
	 * 函数功能说明：后台 进入修改参数信息页面
	 *
	 * @param 参数说明 tConstParameter
	 * @return 返回值说明 jsp页面
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.12.23
	 */
	@RequestMapping("/toupdateconstparameter")
	public String toUpdateConstParameter(HttpServletRequest request, Model model) {
		TConstParameter dbConstParameter = constParameterServiceImpl.findByID(request.getParameter("iID"));
		model.addAttribute("dbConstParameter", dbConstParameter);
		return "webbackground/constparametermanagement/UpdateConstParameter";
	}

	/**
	 * 函数功能说明：后台 修改参数信息
	 *
	 * @param 参数说明 tConstParameter
	 * @return 返回值说明 jsp页面
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.12.23
	 */
	@RequestMapping(value = "/saveupdateparameter")
	public String saveUpdateParameter(TConstParameter tConstParameter, HttpSession session) throws Exception {
		TSysUser sessionSysUser = (TSysUser) session.getAttribute("tSysUser");
		if (constParameterServiceImpl.updateParameter(tConstParameter, sessionSysUser) == true) {
			return "redirect:constparameterindex";
		} else {
			return "Test";
		}
	}

	/**
	 * 函数功能说明：后台 删除参数信息
	 *
	 * @param 参数说明 tConstParameter
	 * @return 返回值说明 jsp页面
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.12.23
	 */
	@PostMapping("/deleteconstparameter")
	@ResponseBody
	public String deleteConstParameter(String checkList) {
		constParameterServiceImpl.deleteParameter(checkList);
		return "redirect:constparameterindex";
	}

}
